// 将数组当作栈来使用

// 用一个空数组充当空栈
const stack = [];
console.log( stack, stack.length );

// Array.prototype.push(...items)
// 作用: 依次向数组末尾中追加新元素
// 返回: 返回追加元素后的数组长度
// 向栈顶压入元素(即在数组末尾新增元素)
console.log( stack.push('刘彻', '刘启') );
console.log( stack, stack.length );

console.log( stack.push('刘恒', '刘邦') );
console.log( stack, stack.length );

// 检查栈顶元素实际上就是获取数组末尾的元素
Array.prototype.peek = function(){
    if( this.length > 0 ) {
        return this[ this.length - 1 ];
    }
}

console.log( stack.peek() );
console.log( stack );

// Array.prototype.pop() 
// 作用: 用于移除并返回数组末尾的元素；若数组为空则返回 undefined
// 弹出栈顶元素 实际就是删除数组末尾的元素
console.log( stack.pop() );
console.log( stack, stack.length );

console.log( stack.pop() );
console.log( stack, stack.length );

// 总结:
// Array.prototype.push(...items) 依次向数组末尾追加元素
// Array.prototype.pop() 移除并返回数组末尾的元素